/*=========================================================================
Elite College as Engines of Upward Mobility: Evidence from Colombia's Ser Pilo Paga
Authors: Juliana Londoño-Vélez, Catherine Rodriguez, Fabio Sánchez
and Luis Esteban Álvarez-Arango

Creation date: June 6th, 2025
--------------------------------------------------------------------------
Prep PILA
=========================================================================*/

import excel "${data2}/1.2.5.IPC_Serie_variaciones.xlsx", clear sheet("Hoja1") firstrow case(lower)
tempfile ipc
save `ipc'

use "${data2}/PILA", replace
gen mes=substr(periodo_no_salud,6,2)
gen año=substr(periodo_no_salud,1,4)
destring año mes, replace
gen t=1 if mes==4
replace t=2 if mes==8
replace t=3 if mes==12
forvalues i=2014/2023{
	preserve
			keep if año==`i'
			xtset estu_snp t
			tsfill, full
			replace año=`i'
			tempfile b`i'
			save `b`i''
	restore
}
keep if año==2013
xtset estu_snp t
tsfill, full
replace año=2013
forvalues i=2014/2023{
	append using `b`i''
}
replace mes=4 if t==1
replace mes=8 if t==2
replace mes=12 if t==3
tostring año, gen(año2)
tostring mes, gen(mes2)
replace mes2="0"+mes2 if length(mes2)==1
ereplace periodo_no_salud=concat(año2 mes2) if periodo_no_salud=="", punct("-")
drop t año2 mes2
replace dias=0 if dias==.
replace rango=0 if rango==.
gen ibc_diario=rango/dias
rename rango ibc
merge m:1 año mes using `ipc', keep(1 3) nogen
replace índice=100 if índice==.
gen sm=ibc
gen sm_diario=ibc_diario
** Convertir ibc a pesos y deflactar
foreach x in ibc ibc_diario{
	replace `x'=`x'*589500 if año==2013
	replace `x'=`x'*616000 if año==2014
	replace `x'=`x'*644350 if año==2015
	replace `x'=`x'*689455 if año==2016
	replace `x'=`x'*737717 if año==2017
	replace `x'=`x'*781242 if año==2018
	replace `x'=`x'*828116 if año==2019
	replace `x'=`x'*877803 if año==2020
	replace `x'=`x'*908526 if año==2021
	replace `x'=`x'*1000000 if año==2022
	replace `x'=`x'*1160000 if año==2023
}
replace ibc=ibc/índice*100
replace ibc_diario=ibc_diario/índice*100
replace valor_nomina=valor_nomina/índice*100
gen trimestre=ym(año, mes)
format trimestre %tm
gegen aux=max(ibc), by(estu_snp año)
foreach x in ciiu cod_mpio numero_empleados valor_nomina{
	replace `x'=. if ibc!=aux
	ereplace `x'=mode(`x'), by(estu_snp año) minmode
}
gen trabajo=1 if ibc!=0	
preserve
	keep estu_snp periodo_no_salud ibc sm trabajo 
	replace periodo_no_salud=regexr(periodo_no_salud,"-","")
	destring periodo_no_salud, replace
	rename (ibc sm trabajo) (ibc_ sm_ trabajo_)
	greshape wide ibc_ sm_ trabajo_, i(estu_snp) j(periodo_no_salud)
	save "${data2}/PILA_cuatrimestral", replace
restore
collapse (mean) ibc ibc_diario sm sm_diario dias (sum) numero_trimestres (min) trimestre (firstnm) ciiu cod_mpio numero_empleados valor_nomina (max) empleado independiente practicante trabajo, by(estu_snp año)

foreach x in ciiu cod_mpio{
	tostring `x', replace
}

gen l=length(cod_mpio)
replace cod_mpio="" if l<4
replace cod_mpio="0"+cod_mpio if l==4
drop l
gen l=length(ciiu)
replace ciiu="" if l==1
replace ciiu="00"+ciiu if l==2
replace ciiu="0"+ciiu if l==3
drop l

preserve
	keep estu_snp año empleado independiente practicante ciiu cod_mpio numero_empleados valor_nomina
	greshape wide empleado independiente practicante ciiu cod_mpio numero_empleados valor_nomina, i(estu_snp) j(año)
	tempfile rhp
	save `rhp'
restore

drop empleado independiente practicante ciiu cod_mpio numero_empleados valor_nomina
greshape wide ibc ibc_diario sm sm_diario dias trabajo numero_trimestres trimestre , i(estu_snp) j(año)
merge 1:1 estu_snp using `rhp', nogen

forvalues i=2013/2023{
	gen sector`i'=""
	replace sector`i'="A" if regexm(ciiu`i',"^01") | regexm(ciiu`i',"^02") | regexm(ciiu`i',"^03")
	replace sector`i'="B" if regexm(ciiu`i',"^05") | regexm(ciiu`i',"^06") | regexm(ciiu`i',"^07") | regexm(ciiu`i',"^08") | regexm(ciiu`i',"^09")
	replace sector`i'="C" if regexm(ciiu`i',"^1") | regexm(ciiu`i',"^2") |  regexm(ciiu`i',"^30") | regexm(ciiu`i',"^31") | regexm(ciiu`i',"^32") | regexm(ciiu`i',"^33")
	replace sector`i'="DE" if regexm(ciiu`i',"^35") | regexm(ciiu`i',"^36") | regexm(ciiu`i',"^37") | regexm(ciiu`i',"^38") | regexm(ciiu`i',"^39")
	replace sector`i'="F" if regexm(ciiu`i',"^41") | regexm(ciiu`i',"^42") | regexm(ciiu`i',"^43")
	replace sector`i'="GHI" if regexm(ciiu`i',"^45") | regexm(ciiu`i',"^46") | regexm(ciiu`i',"^47") | regexm(ciiu`i',"^49") | regexm(ciiu`i',"^50") | regexm(ciiu`i',"^51") | regexm(ciiu`i',"^52") | regexm(ciiu`i',"^53") | regexm(ciiu`i',"^55") | regexm(ciiu`i',"^56")
	replace sector`i'="J" if regexm(ciiu`i',"^58") | regexm(ciiu`i',"^59") | regexm(ciiu`i',"^60") | regexm(ciiu`i',"^61") | regexm(ciiu`i',"^62") | regexm(ciiu`i',"^63")
	replace sector`i'="K" if regexm(ciiu`i',"^64") | regexm(ciiu`i',"^65") | regexm(ciiu`i',"^66")
	replace sector`i'="L" if regexm(ciiu`i',"^68")
	replace sector`i'="MN" if regexm(ciiu`i',"^69") | regexm(ciiu`i',"^7") | regexm(ciiu`i',"^80") | regexm(ciiu`i',"^81") | regexm(ciiu`i',"^82")
	replace sector`i'="OPQ" if regexm(ciiu`i',"^84") | regexm(ciiu`i',"^85") | regexm(ciiu`i',"^86") | regexm(ciiu`i',"^87") | regexm(ciiu`i',"^88")
	replace sector`i'="RST" if regexm(ciiu`i',"^9")
	replace sector`i'="U" if regexm(ciiu`i',"^99")
	replace sector`i'="V" if regexm(ciiu`i',"^00")
}

forvalues i=2013/2023{
	gen cp_pila`i'=(cod_mpio`i'=="11001" | cod_mpio`i'=="05001" | cod_mpio`i'=="76001" | cod_mpio`i'=="08001" | cod_mpio`i'=="68001" | cod_mpio`i'=="17001" | cod_mpio`i'=="66001" | cod_mpio`i'=="54001" | cod_mpio`i'=="52001" | cod_mpio`i'=="73001" | cod_mpio`i'=="23001" | cod_mpio`i'=="13001" | cod_mpio`i'=="50001" )
}

label define tamaño 1 "Micro empresa" 2 "Pequeña empresa" 3 "Mediana empresa" 4 "Grande empresa"

forvalues i=2013/2023{
	gen tamaño`i'=.
	replace tamaño`i'=1 if numero_empleados`i'<=10
	replace tamaño`i'=2 if numero_empleados`i'>10 & numero_empleados`i'<=50
	replace tamaño`i'=3 if numero_empleados`i'>50 & numero_empleados`i'<=200
	replace tamaño`i'=4 if numero_empleados`i'>200 & numero_empleados`i'!=.
	label values tamaño`i' tamaño
}

drop ciiu* cod_mpio* valor_nomina* 

foreach x of varlist _all{
	label var `x' ""
}

save "${data2}/PILA_anual", replace
